#pragma once
#include <math.h>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <string>
#include "Vector3.h"
#include "freeglut.h"
#include "Monster.h"
#include "TextureImage.h"

using namespace std;

enum State{
	STATE_IDLE,
	STATE_HUNT,
	STATE_ATTACK,
	STATE_FLEE,
	STATE_DIE,
	STATE_NUM
};

class CHunter
{
private:
	int hp;
	int damage;
	int speed;
	int attackRate;
	CMonster *target;
	Vector3 position;

	State hunterState;

public:

	void setPosX(float value);
	void setPosY(float value);
	void setPosZ(float value);
	void setHp(int value);
	void setDamage(int value);
	void setSpeed(int value);
	float getPosX(void);
	float getPosY(void);
	float getPosZ(void);
	int getHp(void);
	int getDamage(void);
	int getSpeed(void);
	Vector3 getPos(void);
	CMonster* getTarget();

	CHunter(void);
	CHunter(float posX, float posY, float posZ, int hp, int speed, int damage, int attackRate);
	~CHunter(void);

	void setCurrentState(State newState);
	State getCurrentState(void);

	void Update(CMonster *monster, float dt);

	void render(void);
};